Lambda-Calculus and Functional Programming

نویسنده

  • Jonathan P. Seldin
چکیده

ion operator; this is because [x]M is an abbreviation for a term in which M and its subterms do not occur. On the other hand, in the natural reduction for lambda-calculus, replacements inside the scope of an abstraction are extremely natural. Thus, what is now called λβ -reduction satisfies a scheme which weak reduction does not, namely (ξ): if M reduces to N, then λx.M reduces to λx.N. (The same is true if «reduces» is replaced by «converts».) This gives us two kinds of reduction and two kinds of conversion. There is a third kind of each of reduction and conversion: Curry’s original papers all included postulates to satisfy a principle of extensionality (ζ): if Mx converts to Nx, where x does not occur free in M or N, then M converts to N. It turns out that for conversion (but not reduction), (ζ) is equivalent to the conjunction of (ξ) and (η): if x does not occur free in M, then λx.Mx converts to M. (Note that this says that everything converts to an abstraction.) If (η) for

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Algebra and Topology in Lambda Calculus

The untyped lambda calculus was introduced around 1930 by Church [11] as part of an investigation in the formal foundations of mathematics and logic. Although lambda calculus is a very basic language, it is sufficient to express all the computable functions. The process of application and evaluation reflects the computational behavior of many modern functional programming languages, which expla...

متن کامل

Arrays in Imperative Lambda Calculus

In recent work, we defined a formal system called Imperative Lambda Calculus to provide clean integration of functional and imperative programming styles. In this paper, we study the issues of array manipulation in this framework. It is shown that the unique features of the calculus allow one to express array algorithms using high-level abstractions that are not available in purely functional l...

متن کامل

Programming with Visual Expressions

The lambda calculus is a formal symbolic term rewrite system that has been used for many years both as a mechanism for defining the semantics of programming languages, and as the basis for functional programming languages. In this paper, we describe a completely visual representation for lambda expressions, VEX, that has several advantages over traditional textual lambda calculus. Although VEX ...

متن کامل

A Consistent Extension of the Lambda-Calculus as a Base for Functional Programming Languages

Church 's lambda-calculus is modified by introducing a new mechanism, the lambda-bar operator # , which neutralizes the effect of one preceding lambda binding. This operator can be used in such a way that renaming of bound variables in any reduction sequence can be avoided, with the effect that efficient interpreters with comparatively simple machine organization can be designed. It is shown th...

متن کامل

Public-key cryptography in functional programming context

Cryptography is the science of information and communication security. Up to now, for efficiency reasons cryptographic algorithm has been written in an imperative language. But to get acquaintance with a functional programming language a question arises: functional programming offers some new for secure communication or not? This article investigates this question giving an overview on some cry...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2000